MAJOR CHANGES since JADE 2.4 ($Date: 2001/09/25 14:21:04 $ $Name:  $)
==========================================================================
	
MAJOR CHANGES in JADE 2.4 (25 Sep. 2001) 
==========================================================================
GENERAL IMPROVEMENTS AND NEW FUNCTIONALITIES
- Modified the deprecated constructor of jade.core.AID in order to ensure
  better compatibility with JADE 2.2 and earlier versions. (David Bell, HP)
- If an RMIRegistry can be located on the given port at Boot time, 
  that registry is then used without creating a new one. (David Bell, HP)
- It is now possible to pass an array of Object (i.e. Object[]) as arguments
  of the Agent and no more just an array of String. The method 
  setArguments(String[] args) has been deprecated and  the method
  Object[] getArguments() should be used instead.
- improved the shutdown and the termination of the JVM
- removed inheritance between MainContainer and AgentContainer
SUPPORT FOR J2ME AND JADE-LEAP INTEGRATION
- added new package jade.util.leap that contains all those java.util classes 
  that are not supported in J2ME, in particular the Java collection framework.
  In this way JADE does not use internally the Java collection framework and
  it can be easily compiled and ported to J2ME and CLDC.
  All the APIs of JADE that had a parameter of type java.util.List have been
  deprecated, they are not supported on J2ME and they will be definitevely
  removed also in the next version of JADE.
- the internal inter-container message transport protocol (IMTP) of JADE
  has been made pluggable via the IMTPManager.
  The package jade.imtp.rmi provides the default RMI-based implementation
- removed the class jade.core.Starter and added the classes Profile and 
  ProfileImpl that allow the JADE Runtime to 
  get the Boot arguments. Modified, as a consequence, also the Boot class. 
- jade.core.acc is now an interface and two implementations (FullAcc and
  LightAcc) have been provided.
- modified the signature of the method forwardMessage() in
  public void forwardMessage(ACLMessage msg, AID receiver, String address)
- preparation of the Envelope and payload coding  are now responsibility
  of the ACC and no more of the ACCProxy
- encapsulated the code concerning Mobility into the class MobilityManager
- encapsulated the code concerning Event Notification into the class 
  NotificationManager
BUG FIX
- fixed bug in the HTTP-MTP (Ion Constantinescu)
- fixed bug in ACLMessage.createReply. The createdEnvelope was not correct
  as reported by Tianning Zhang
- fixed bug in Behaviour.block(long) that generated a NullPointerException
- fixed bug in ReceiverBehaviour, removed 2 bugged constructors and added
  getMessage method.
- fixed bug in ams.java and in InternalError.java: they did not send
  proper failure/refuse messages (reported by Alfredo Ricchi)
- fixed bug in method MessageTransportProtocol.deliver that caused agents to 
  die when sending messages to wrong addresses (reported by Steve Willmott)
EXAMPLES
- added TestReceiverBehaviourAgent in the examples/behaviours
- added ThanksAgent in examples/thanksAgent
- added Initiator/Responder examples in examples/protocols that shows
  how to use AchieveREInitiator/Responder and HandlerSelector classes
- added Sender/Receiver example in examples/content that shows how
  to use the new support for message content and ontologies
BEHAVIOURS AND INTERACTION PROTOCOLS
- added 2 new classes AchieveREInitiator/Responder that provides support
  for all the FIPA-Request like interaction protocols, such as Fipa-query,
  Fipa-propose, Fipa-proxy, ...
- added 2 new classes in the package jade.proto.states to support the
  implementation of interaction protocols, in particular the HandlerSelector
  to select between a set of handlers
- added a new class DataStore in jade.core.behaviours that represents a
  private datastore of a behaviour
DEPRECATED
- removed the deprecated constructor of ACLMessage: ACLMessage(String type)
- deprecated all the toText() methods, replaced by toString()
- Agent.setArguments(String[] args) replaced by 
  Object[] Agent.getArguments()
- FipaRequestInitiator/Responder and FipaQueryInitiator/Responder have
  been deprecated and should be replaced by AchieveREInitiator/Responder
- All the APIs of JADE that had a parameter of type java.util.List have been
  deprecated, they are not supported on J2ME and they will be definitevely
  removed also in the next version of JADE. In particular, the followings:
  - DF/AMS ServiceCommunicator and replaced by DF/AMS Service
    that are CLDC-compliant because they do not use java.util.List
  - Agent.fillContent/extractContent have been deprecated. They will be
    replaced in the next version of JADE by the new content support (see below)
  - ACLMessage.getAllPerformatives() and replaced by 
    ACLMessage.getAllPerformativeNames()
  - MessageTemplate.MatchReceiver and MessageTemplate.MatchReplyTo
COMPLIANCE TO FIPA
- Improved compliance with FIPA2000 about the usage of singular names
  for some slots whose type value is a set. 
  In particular for "ontologies","languages","protocols".	
DOCUMENTATION
- Programmer's Guide: added description of AchieveREInitiator/Responder
  and removed the description of fipaRequest and fipaQuery interaction
  protocols. Added appendix on new support for message content 
- Added a description of the examples.
SUPPORT FOR MESSAGE CONTENT
- The old jade.onto support for content languages and ontologies is going
  to be deprecated and then definitevely removed in the next versions of JADE
  It will be replaced by the new support in the package jade.content

	
MAJOR CHANGES in JADE 2.3 (11 July 2001) 
==========================================================================
- fixed some bugs in the SocketProxyAgent (David Bell, HP Palo Alto)
- implemented the InProcessInterface (jade.wrapper and jade.core.Runtime)
- added the inprocess example
- implemented the IntrospectorAgent
- improved the support for ToolAgents and implemented a new event ontology
- fixed bug in run.bat of the demo because it did not include iiop.jar in
  the CLASSPATH
- Added a sanity check in notifyFailureToSender to avoid NullPointerException 
  when the sender is null
- ACLMessage: removed an additional blank at the end of the content slot.
- ACLMessage: deprecated the two methods setReplyBy and getReplyBy. The
  methods getReplyByDate and setReplyByDate should be used instead.
- MobileAgent example: fixed bug in dealing with the move message
- jade.gui.ServiceDescrDlg fixed bug in the visualization of the Properties
  of a ServiceDescription registered with the DF
- jade.domain.MobilityOntology. removed the actor slot in the classes 
  MoveAction, QueryPlatformLocation and WhereIsAgent 
  (as reported by Nicolas Lhuillier, Motorola Labs Paris)
- Passed the FIPA Compliance Test of Motorola:
  - Catched exception in initfromIOR 
  - Matched the ServiceDescription also against the user-defined properties
- Added the JadeJessProtege example kindly provided by Oliver Hoffmann.
- Added a checkbox to the AID GUI. This checkbox must be checked when local
  names are set instead of GUID (globally unique identifiers).
- Modified the class jade.core.AID that now represents only GUID. Some 
  user applications might need to modify the code and call the constructor
  AID(localName, AID.ISLOCALNAME) instead of the old constructor.
- (see also the HTML page news.html)
- Tiny fix to the SL0Encoder in order to permit encoding of strings of length 0
  [Craig Sayers - HP] 
- HTTP-MTP (Ion Constantinescu)
  - Using base classes from jamr version 0.72 which:
    - fixes server socket listen bug
    - fixes thread interrupt bug
    - updates jamr.jms.basic classes
    - automates the process of creating the jade http mtp plugin
  - Also we changed the names of the make commands and batch files
    from make http, make httplib, httpclean to plain 	
- Added drag and drop support for sending a file. (David Bell, HP)
  - You can drag and drop a file (containing a text representation of an ACL 
    message) onto the "Send Message" AclGui panel or the DummyAgent AclGui 
    panel.
  - You can select one or more agents in the AgentTree (left hand panel of the 
    RMA) and then drag and drop a file onto the tree.  The file should contain 
    a text representation of an ACL message.  The message will be sent to all 
    selected agents.
- Added the SLFormatter tool (jade.tools.sl.SLFormatter) that allows to
  format an SL-expression into a human-friendly string. (Craig Sayers, HP)
- Fixed bug of the configuration GUI that did not allow specifying a list
  of agents to be launched.
- Added the command line parameter "-name" which specifies the symbolic 
  name to be used as the platform name rather than the default name generated
  from the main container's hostname and the portnumber. (Ion Constantinescu)
	
	
MAJOR CHANGES in JADE 2.2 (11 April 2001) 
======================================================	
- The class MessageTemplate has been modified in order to allow the
  creation of application-specific templates.
- Integrated the following modifications to the Sniffer Agent provided by 
  Robert Kessler and Griss Martin:
  - The performative is listed above the message line.
  - Above the message line is also truncated versions of the conversationID,
    inreplyto and replywith fields.
  - Messages are colored in the same color if it can be determined to be part
    of the same conversation.  It uses the three fields to "guess" that it is
    all part of the same conversation.
  - The agent box now can take longer names without overflowing spread over 
    2 lines (truncating the name if it exceeds 2 lines).
  - Clicking on the agent box will give you the full name of the agent.
  - The agents boxes at the top do not scroll when you scroll the window, so
    you can see which line is associated with which agent.
  - When the sniffer starts up, it looks for a <agentname>.inf file in the 
    connected directory.  If it doesn't find it there, it looks for the file
    in \<agentname>.inf.  This inf file contains a list of agent names that
    are to be immediately sniffed once the agent is born.  The agent names 
    are listed one name per line.
  - In the same .inf file you can store performative filtering information. 
    If you want all messages to appear then leave it blank.  Otherwise, 
    list the names of the performatives to actually see (the rest being 
    filtered out). I.e. agentfoo inform propose.
  - When you click a message, more information appears in the message window
    at the bottom.
  - Fixed bug on the SnifferAgent when displaying long agent names 
  - The AMS now send the INFORM message after a 'create-agent' action.
- Integrated the following modification to the SL0Parser/SL0Encoder 
  provided by Sayers Craig, HP Labs, Palo Alto, California:
  Noticed that when using Jade's SL0 encoder/parser, 
  some strings are written as words when they should probably be quoted, and 
  that encode/decode are not always exact inverses of each other.
  We've modified the SL0encoder and the SL0parser so
  that they handle a wider range of strings 
- Modified the ISO8601 class by Sayers Craig, HP Labs, Palo Alto, California
  in order to read/write dates in UTC time (as recommended by FIPA)
- Integrated the following 3rd party contributions:
  - HTTP-based MTP provided by EPFL
  - XML-based ACLCodec provided by EPFL
  - bit-efficient ACLCodec provided by Sonera
- slight improvements to the directory structure of the ORBacus support
- When the ACC is not able to deliver an ACLMessage, it sends back to the
  original sender a FAILURE message, as required by the FIPA specs.
- Deprecated the toText() method of the class AID and improved its toString() 
  method.
- Restructured the jade.core.behaviours package as follows:
  - deleted the class ComplexBehaviour
  - added the classes ParallelBehaviour, CompositeBehaviour, and FSMBehaviour
  - deprecated the methods preAction() and postAction() and replaced by
    the new methods onStart() and onEnd()
  - deprecated the class NonDeterministicBehaviour and replaced by the
    new class ParallelBehaviour
- Command line:
  - Improved the usage of the "-host" option on the command line such that
    it can be now used to orverride the local host name and including
    the full domain (e.g. "-host sharon.cselt.it")
  - added the option "-aclcodec" to integrate external ACLCodecs
  - modified the separator on the "-mtp" option from "," to ";"
- Fully integrated the usage of the FIPA Envelope when transporting messages
- RMA GUI (Remote Monitoring Agent):
  - added support for displaying the APDescription of the platform
  - added support for monitoring a remote Agent Platform, including
    searching for agents in a remote AMS
- Fixed the following bugs:
  - all the reported bugs about the scheduling of Behaviours
  - nullException when an empty content was received in the FipaRequest 
    Behaviours
  - name of the package JadeMetaOntology for non-Windows platforms
  - ACC failed when a message with an empty :sender slot was received
  - The ACC went into endless loop when a 'bad' message came in.
  - bug in jade\mtp\iiop\MessageTransportProtocol.java
  - ReceiverBehaviour that did not clone correctly the
    received ACLMessage, as reported by Andreas Lauer 
  - bug in the value of the slot :name of the APDescription
- The content of the ACLMessages has been quoted as specified by the FIPA
  specifications.
- Improved the About GUI.
- MeetingScheduler demo 
  - fixed bug by setting the DateFormat
  - small modifications to the Meeting Scheduler demo, adding agent names 
    to title bars, and to the default login and meeting description as 
    provided by Martin L. Griss
- Added the PingAgent example that complies with the AgentCities specs
	
MAJOR CHANGES IN JADE 2.1 (December 18, 2000)
=============================================
- Fixed bugs in behaviour scheduling (blocked behaviour could not be removed, 
  timers could not be reset properly). 
- Added support for pluggable MTPs (Message Transport Protocols). 
- Added command line options and RMA GUI actions to install and uninstall MTPs. 
- Split the programmer's guide into: this ChangeLog file with the release notes, the
  programmer's guide, and the administrator's guide with installation notes.
- Added arguments to the Agent constructor. They can be passed either from the command-line,
  from the RMA or from the configuration GUI.
- Added capability of moving and cloning agents from the RMA GUI. 
- Added capability of a/deactivating MTPs from command-line, from the RMA or from the   
  configuration GUI.
- Fixed bug in the method reset() of the behaviours. Their scope has been promoted to 
  public and blocked behaviours are waken up after being reset.
- The GUI that displays/edit an ACLMessage has been extended in order to show also the  
  envelope of the message.
- A bug of the sniffer has been removed which did not allow having multiple sniffers on 
  the same containers. The look&feel of the sniffer GUI has also been improved.
- Fixed bug in agent mobility
- the IOR of the agent platform is now written into a different file name, no 
  more JADE.IOR. The name of the file depends now on the container where the 
  MTP is activated (MTPs-MainContainer.txt and MTPs-Container-xx.txt, 
  where xx is the number of the container).
- Ontology can now be serialized by using SL and the JADE-MetaOntology
- Moved jade.onto.Name into jade.core
- Made mobility case-insensitive for what regards the container-name
- Upgrade of the Jess example to JESS 5.1 kindly provided by Kaveh Kamyab
- Integrated ORBacus
- Integrated applet to control the DF GUI via Web
- Added button to main GUIs to open a web browser to the JADE url.


MAJOR CHANGES IN JADE 2.01 (September 19, 2000)
===============================================
- fixed bug about JADE integration with JSP (both the method Agent.doStart() and the 
  examples). An inner class (SecurityManager) has been included within the Agent class as 
  a first step towards managing security in JADE.
- fixed bug about jade.core.AgentManager inner interface that some JVM require to be 
  declared public
- fixed bug in the sniffer that did not sniff agents on remote containers
- improved the configuration gui with help button and agent specifiers.


MAJOR CHANGES IN JADE 2.0 (September 12, 2000)
==============================================
JADE 2.0 is based on and complies with the new FIPA 2000 specifications. The major changes
in these specifications that affect JADE 2.0 are the following:
- the agent name is no more a String composed of the concatenation of the agent local name     + the address of its home agent platform. It is now, instead, a structure, called
  AgentIdentifier or AID, composed of several slots: the globally unique identifier of the   agent, its set of addresses, and its set of resolvers (i.e. the AMS and all those   white-page agents where the agent is registered).
- the parameter envelope in the ACLMessage has been removed and two new parameters, 
  reply-to and encoding, have been added. Also a couple of new performatives has been added.
- When a message is transmitted, an envelope is attached that contains information relevant
  to the delivery of the message. As a consequence, the IDL IIOP interface is also changed.
- The SL-0 parser has been improved and some bugs fixed. The concepts of set and sequence 
  of terms have been introduced. The content of an ACLMessage must now be a t-uple of 
  expressions.
- The FIPA-Agent-Management ontology changed considerably and the AMS now supports a new 
  action (search).

As a consequence of these changes in FIPA, and also based on the feedback received by the 
JADE users, the following is the list, probably non-exhaustive, of the major changes in 
JADE 2.0.
- The agent name is no more a String but an object of the class jade.core.AID
- The class Agent has been modified to work with AID's rather than Strings and by adding 
  the two methods getDefaultDF and getAMS() 
- All the methods to access the services of the DF and the AMS have been moved from the 
  class Agent into the classes DFServiceCommunicator and AMSServiceCommunicator, that have 
  been added to the package jade.domain.
- the class ACLMessage has been modified to comply with the new FIPA specifications and, 
  as a consequence, also the MessageTemplate class has been updated. The methods setSource 
  and addDest have been renamed into setSender and addReceiver(). The methods dump(), 
  toText() and fromText() have been removed from this class. Care must be taken because the 
  getXXX() methods return null, while in the previous release they returned an empty string,
  when the parameter has not been set.
- the interface jade.lang.acl.Codec has been added and the class StringACLCodec has been 
  implemented to support String encoding. 
- The interface of the content language codec (jade.lang.Codec) has been changed to take 
  into account t-uples as a content of the ACLMessage.
- The IIOP IDL interface has been modified to comply with the new FIPA specs
- The names of some classes of the jade.core package have been improved and the AgentGroup 
  class has been removed
- The class FIPAAgentManagement and its inner classes have been moved into the package 
  jade.domain.FIPAAgentManagement
- A new package jade.domain.JADEAgentManagement has been added to include the JADE 
  non-standard extensions to the FIPA-Agent-Management ontology. 
- The support to user-defined ontologies has been modified by fixing the bug reported by 
  Kaveh Kamyab, renaming some classes, improving the API and implementing the support to 
  set, sequences, and unspecified types. 
- The interface of the class FIPARequestResponderBehaviour has been slightly modified.
- A Message Transport Protocol (MTP) interface has been added to allow the future 
  implementation of plug-and-play of new MTP's
- Some new classes have been added in the package jade.gui to display common concepts like 
  an AID, a DFDescription, a ServiceDescription, 
- the GUI of the DF has been modified to comply with the new FIPA-Agent-Management ontology
  and has been improved to allow the full control of a network of federated DF's. 
  The classes implementing this GUI have been moved from jade.gui into jade.tools.DFGUI.
- the command line option -conf has been added and the option -platform has been set to 
  default
- several sections of the programmer's guide have been rewritten in the hope of improving 
  the clarity
- a new example was included about the integration of JADE within the JSP environment. The 
  example, and a brief tutorial about that, was kindly provided by Daniel Le Berre that we 
  gratefully acknowledge.
- The MeetingScheduler example has been rewritten in order to use the new support for 
  user-defined content languages and ontologies and the bug reported by Matthew Mishrikey 
  has been fixed.
- A bug, reported by Ijsbrand Zeelte, on agent cloning has been fixed; and a button to 
  clone agents has been added to the MobileAgent example.


MAJOR CHANGES IN JADE 1.4 (June 6, 2000)
========================================
- The visibility of the two methods getContentBase64 and setContentBase64 in ACLMessage 
  has been restricted to private. They have been replaced by setContentObject and 
  getContentObject as kindly suggested by Vasu Chandrasekhara (EML). This is the only 
  modification that might impact the source code of your application agents.
- Agent mobility, including the migration of the code, has been implemented.
- Support to user-defined content languages and ontologies has been implemented. In this 
  way, the  encoding of the content message (e.g. String) is completely hidden to the 
  programmer that can internally use Java objects instead.
- A bug has been removed that caused an agent deadlock when waiting for messages.
- The GUI of the Directory Facilitator has been completed, including the possibility of 
  expressing constraints to the search operation and creating a federation of DFs.
- The death of a container is now notified to the RMA and the GUI is automatically updated.
- All the examples have been improved and more examples have been added.
- The method MatchType in MessageTemplate has been deprecated and replaced by 
  MatchPerformative
- All deprecated calls have been removed, just the call to the methods, not the methods 
  themselves. Notice that we plan to remove all deprecated methods in the next release of 
  JADE.
- Added "About" in all the GUIs.
- More than one RMA can now be executed on the same container
- The internal representation of the performative in the class ACLMessage is now an integer
  and no more a String
- From the command line it is no more possible to pass both "-platform" and "-host" 
  parameters.


MAJOR CHANGES IN JADE 1.3 (February 25, 2000)
=============================================
- Made JADE Open Source under LGPL License restrictions.
- Removed some bugs.
- Ported the GUI of the DF in Swing.
- Added some examples.


MAJOR CHANGES IN JADE 1.2 (November 22, 1999)
=============================================
- Sniffer Agent. From the main GUI you can run the so-called sniffer agent that allows you 
  to sniff and log the messages sent between agents.
- ACLMessage class. We have improved this class by deprecating the usage of Strings when 
  you set/get the performative of a message (i.e. "request", "inform", ...). As probably 
  you have noticed already, the usage of Strings requires you to remember using case 
  insensitive comparison. Now a set of constants has been defined in the ACLMessage class: 
  ACLMessage.INFORM, ...
- removed some bugs 
- improved the documentation.


MAJOR CHANGES IN JADE 1.1 (October 8, 1999)
===========================================
- support for Java serialization and transmission of sequence of bytes
- removed a bug in the DF parser that did not allow the registration of attribute values 
  starting with a ':' character
- introduced support for intra-platform mobility of agents. This feature is still at an 
  experimental level, testing is still on-going and no documentation is yet available.
- made case-sensitive the class jade.core.AgentGroup and the agent names in the ACLMessage 
  class
- introduced support for Fipa-Iterated-Contract-Net protocol.


MAJOR CHANGES IN JADE 1.0 (July 2, 1999)
========================================
- Timeout support on message receive, both agent-level and behaviour-level. Now a timeout 
  version of blockingReceive() is available, and a new constructor has been added to 
  ReceiverBehaviour class to support timeout. Moreover, a block() version with timeout has 
  been added to Behaviour class.
- AgentReceiver example program in directory src/examples/ex2 was modified and now times 
  out every 10 seconds if no message is received.
- A new example program, AgentTimeout, was added to directory src/examples/ex2 to how new 
  ReceiverBehaviour support for timeouts.
- Moved all behaviours in a separate package. Now they are in jade.core.behaviours package. 
  User application must be updated to either 'import jade.core.behaviours.*' or the 
  individual behaviours they use. 
- Moved RMA agent in a different package; now the Remote Management Agent has class named 
  jade.tools.rma.rma. It can still be started with '-gui' command line option.
- Multiple RMAs can be started on the same platform; they can be given any name and still 
  perform their functions.
- When requesting AMS actions via an RMA, if a 'refuse' or a 'failure' message is received, 
  a suitable error dialog pops out, allowing to view the ACL message.
- Fixed a bug in RMA graphical user interface, which sometimes caused a deadlock on 
  platform startup.
- When an ACL message has an empty ':sender' slot, JADE puts the sender agent name in it 
  automatically.
- Added a new tool agent: jade.tools.DummyAgent.DummyAgent, allowing ACL messages 
  manipulations through a GUI. This agent can be either started from an RMA or directly, 
  since is an ordinary agent.
- Javadoc-generated HTML documentation for all JADE public classes.
- jade.domain.FipaRequestClientBehaviour has been replaced by   
  jade.proto.FipaRequestInitiatorBehaviour and a new   FipaRequestResponderBehaviour has 
  been added in jade.proto package.
- ACL messages now can have many agent names in ':receiver' slot. This required making some
  changes to ACLMessage interface. Please see HTML documentation for ACLMessage class.
- Agents can be suspended and resumed by the GUI or they can suspend themselves; user 
  should not suspend neither the AMS nor the RMA, since they obviously wouldn't be able to 
  resume then back.
- Now an agent can create another agent and starting it up with Agent.doStart(String name).
- The gui of the DF is not shown at startup of the platform but only when requested via the 
  RMA gui.


MAJOR CHANGES IN JADE 0.97 (February 17, 1999)
==============================================
- IIOP support for inter-platform communication (see section 5.2).
- Now JDK 1.2 is required to run JADE.
- GUI for DF management.
- Modified Agent class (getName()/getLocalName() methods). (may need change to your source 
  file!)
- Modified AgentGroup class. (may need change to your source file!)
- Renamed ComplexBehaviour.addBehaviour() to addSubBehaviour(). (may need change to your 
  source file!) 
- Renamed ComplexBehaviour.removeBehaviour() to removeSubBehaviour().(may need change to 
  your source file!)
- Implemented some FIPA interaction protocols.
- Added javadoc documentation.


MAJOR CHANGES IN JADE 0.92
==========================
- Complete support for FIPA system agents.
- Many examples revised, particularly examples.ex5.dfTester now is complete and usable.
- Added examples.ex5.subDF example to show multiple agent domains.
- Added examples.ex2.filebasedSenderAgent to help in debugging and testing.
- Updated and completed documentation, which is now included as part of JADE package.


MAJOR CHANGES IN JADE 0.9 (November 11, 1998)
=============================================
- RMI Registry included within the Agent Platform. Therefore, it is no more necessary to 
  run a shell with the rmiregistry; 
- added reset() method in the Behaviour class to allow complex and repetitive behaviours;
- modifications to the method in the Agent class that make the state transitions: doDelete 
  and doWake() to wake-up all the blocked behaviours. Therefore to wake-up an agent it is 
  possible to call the method doWake() or to send it a message;
- included the RMA (remote management agent), that is a GUI to control the agent platform. 
  This agent can be executed via the option -gui on the command line or as a normal agent;
- the AMS is now able to create-agent, kill-agent, and manages subscribe messages from the 
  RMA, and it is also able to manage several RMAs. When a new container or a new agent is 
  born or is killed, the AMS sends an inform to all the registered RMAs;
- included option '-version' on the command line to print the current version of Jade. 


MAJOR CHANGES FROM JADE 0.71+ TO JADE 0.79+ (September 30, 1998)
================================================================
- included this programmers guide;
- implemented DF, AMS, and ACC that now are activated at the bootstrap of the Agent 
  platform;
- modified Behaviour that is now an Abstract class and no more an Interface;
- included SenderBehaviour and ReceiverBehaviour that are more suitable to send and receive 
  messages;
- implemented new Behaviours, like OneShotBehaviour, CyclicBehaviour;
- unified method name: the execute() method of the behaviours is now always called action(); 
- included an example, which is a ready-to-use agent, of Jess-based agent.
